using System;

namespace JGSY.CMS.LowCode.Platform.Application.DTOs
{
    /// <summary>
    /// 发布历史数据传输对象
    /// 用于传输内容发布操作的历史记录和状态变更信息
    /// </summary>
    public class PublishHistoryDto
    {
        /// <summary>
        /// 历史记录标识符
        /// 发布历史记录的唯一标识
        /// </summary>
        public long Id { get; set; }
        
        /// <summary>
        /// 内容标识符
        /// 被发布内容的唯一标识
        /// </summary>
        public long ContentId { get; set; }
        
        /// <summary>
        /// 发布状态
        /// 内容的发布状态，如：成功、失败、进行中等
        /// </summary>
        public string Status { get; set; } = string.Empty;
        
        /// <summary>
        /// 操作类型
        /// 执行的操作类型，如：发布、撤销等
        /// </summary>
        public string ActionType { get; set; } = string.Empty;
        
        /// <summary>
        /// 操作人员
        /// 执行发布操作的用户标识或姓名
        /// </summary>
        public string Operator { get; set; } = string.Empty;
        
        /// <summary>
        /// 操作时间
        /// 发布操作执行的时间戳
        /// </summary>
        public DateTime ActionTime { get; set; }
        
        /// <summary>
        /// 目标环境
        /// 内容发布的目标环境，如：生产环境、测试环境等
        /// </summary>
        public string? TargetEnvironment { get; set; }
        
        /// <summary>
        /// 创建时间
        /// 历史记录创建的时间戳
        /// </summary>
        public DateTime CreatedAt { get; set; }
        
        /// <summary>
        /// 发布完成时间
        /// 内容实际发布完成的时间（可选）
        /// </summary>
        public DateTime? PublishedAt { get; set; }
        
        /// <summary>
        /// 版本号
        /// 发布内容的版本标识
        /// </summary>
        public int Version { get; set; }
    }
}
